[レポート]What’s new with serverless #reinvent
はじめに
「What's new with serverless」のセッションに参加してきたので、その内容についてお話ししていきたいと思います。
タイトルにもあるように、「サーバーレスの新機能」という内容のセッションでした。 具体的には、「AWS Lambda、Amazon EventBridge、AWS Step Functions、AWS SAM」について説明されるセッションでした。
概要
Join this session to learn what new features in AWS Lambda, Amazon EventBridge, AWS Step Functions, and AWS SAM you might have missed this year. Explore the latest patterns and what has been made possible. Learn practical tips to make use of the latest features designed to help you build better serverless applications.
(直訳:
このセッションでは、AWS Lambda、Amazon EventBridge、AWS Step Functions、AWS SAMで今年見逃したかもしれない新機能を紹介します。最新のパターンと何が可能になったかを探ります。より良いサーバーレスアプリケーションを構築するために設計された最新機能を活用するための実践的なヒントを学びます。
スピーカー
- David Boyne
- Senior Developer Advocate - AWS Serverless
アジェンダ
- AWS Lambda
- AWS Step Functions
- Amazon EventBridge
- AWS Serverless Application Model (AWS SAM)
- More resources
内容(AWS Lambda)
AWS Lambda Function URLs
今までLambdaからDynamoDBに接続される環境にアクセスするためには、API Gatewayを利用する必要があり手間だった。
そこで、「AWS Lambda Function URLs」を利用することで手間を解消できる。
- Lambda 関数専用の HTTPS エンドポイント - AWS CloudFormationの独立したリソース - AWS Lambda Functionを呼び出すための一意のURLを生成する - LATESTまたはユーザー定義のエイリアスを指すことができる
InputやMonitoring
Use caseやWhen to use Lambda URLs
AWS Lambdaの同期呼び出しの比較
- AWS Lambda URLs
- 入門 - 簡単な呼び出し - ウェブアプリケーション - 長時間のワークロード
- API Gateway
- サービス連携に最適な - URLに複数の機能 - REST API - セキュリティの強化
Lambda SnapStart
新しいイノベーションにより、AWS SnapStartはJavaベースのFunctionのコールドスタートを最大10倍高速化します。通常、Functionのコードに変更を加えることなく利用することができます。
社内でもすでに記事が速報で上がっているのでぜひ。
Lambdaのコールドスタートを解決するLambda SnapStartのセッションに参加してきた(SVS320) #reinvent
- 実行環境構築の初期化オーバーヘッドを最適化する新機能「Lambda」を搭載 - 関数が数百ミリ秒以内にハンドラ関数コードの実行を開始することを可能にする - Amazon Corretto Java 8 (java8.al2) または Amazon Corretto Java 11 (java11) を実行する AWS Lambda 関数で初期に使用できます。 - MicroVM Snapshotテクノロジを搭載
AWS Lambda実行環境のライフサイクルやリクエストタイムライン
どう動いているのかや関数のライフサイクル
Lambda Telemetry API
Telemetry APIは従来のLogs APIの強化版とも言うべき存在で、Logs APIで取得できた情報に加えてLambda 実行環境のライフサイクルに関連するイベントとエラーに関するトレースとメトリクスが追加で取得できるようになっています。
社内でもすでに記事が速報で上がっているのでぜひ。
【アップデート】Lambda Extensionsのオブザーバビリティをさらに強化するTelemetry APIが利用可能になりました
- 優先的な監視・観測ツールを使用して、強化されたテレメトリーデータを受信する - Telemetry APIはLogs APIの機能を強化します。 - Lambda サービスから直接、ログ、メトリクス、トレースを受け取ることができる - Telemetry API のスキーマは OpenTelemetry (OTEL) とセマンティックな互換性があります。
Lambda Logs APIとLambda Telemetry API
イベントとメトリックス
Lambda storage
「/tmp」として利用可能なエフェメラルストレージを最大10GBまで拡張する事が可能
社内でもすでに記事が速報で上がっているのでぜひ。
/tmpスペースの詳細情報
Lambda Powertools
AWS Lambda 関数用のユーティリティースイートで、トレース、構造化ロギング、カスタムメトリックスなどのベストプラクティスの導入を容易にする。
社内でもすでに記事が速報で上がっているのでぜひ。
- サーバーレスのベストプラクティスの発見と取り込みを支援するオープンソースライブラリ - ロガー、トレース、メトリクス、ユーティリティのためのLambda - 2021年のPythonの起動回数は2.5B、2022年には前年比6.5Bに成長。2022年には前年比6.5Bまで成長。 - 2022年に.NET(プレビュー)、TypeScript(GA)のサポートをリリース
内容(AWS Step Functions)
分散アプリケーション、マイクロサービスのコンポーネントの疎結合化を可能にするAWSのマネージドサービス。 各コンポーネントが独立するため、アプリケーションのスケール及び変更を容易にすることができます。 一つの Step Functions の定義全体をステートマシンと呼び、これらはASL(Amazon States Language)と呼ばれる独自言語を用いて記述されます。
社内でもすでに記事が速報で上がっているのでぜひ。
AWS Step Functionsの機能
New console experience
- ステップファンクション標準ワークフローの分析、デバッグ、最適化を支援する新しいエクスペリエンス - イベントタブ:選択したステートのすべてのイベントを、対応するタイムスタンプとともに表示します - 入出力タブでは、状態の入力から出力まで、その間の変換をパラメータでデバッグ可能 - 新規実行ページをオンにして開始する
AWS Step Functions distributed map state
社内でもすでに記事が速報で上がっているのでぜひ。
[Update]AWS Announces AWS Step Functions Distributed Map #reInvent
- ステップファンクションで大規模な並列ワークロードを調整する - JSONやCSファイルなど数百万のS3オブジェクトを反復処理する - 最大10,000の並列実行が可能 - LambdaまたはAmazonを呼び出すECS/AWS Fargateを呼び出し、大規模なオンデマンドサーバーレスコンピューティングを実現する - エクスプレスまたは標準のワークフローを選択
ユースケース
内容(Amazon EventBridge)
Amazon EventBridge は、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスのイベントバスサービスです。EventBridge は、アプリケーション、SaaS (Software as a Service) アプリケーション、および AWS サービスからのリアルタイムデータのストリームを、AWS Lambda 関数、API デスティネーションを使用した HTTP 呼び出しエンドポイント、または他の AWS アカウントのイベントバスなどのターゲットに配信します。
https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-what-is.html
EventBridge inbound webhooks
- GitHub、Stripe、Twilioとの統合にかかる時間を短縮 - GitHub、Twilio、StripeからのイベントをEventBridgeへ - Lambda function URLsを使ったCloudFormationスタックの提供
Salesforceとの統合は時間を要したみたいで、会場の笑いを誘っていました。
EventBridge Pipes
Amazon EventBridge Pipesは、ソースとターゲットをつなぎます。イベント駆動型アーキテクチャを開発する際の専門知識や統合コードの必要性を低減し、企業のアプリケーション全体の一貫性を促進します。パイプを設定するには、ソースを選択し、オプションのフィルタリングを追加し、オプションのエンリッチメントを定義し、イベントデータのターゲットを選択します。
https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html
社内でもすでに記事があり、とてもわかりやすいので是非。
Amazon EventBridge Pipesを使ってプロデューサー/コンシューマー型メッセージ処理のパイプラインを簡略化しよう #reinvent
Amazon EventBridge Scheduler
EventBridgeは、スケジュールされたルールに加えて、新しいスケジューリング機能であるAmazon EventBridge Schedulerを提供するようになりました。EventBridge Schedulerは、サーバーレススケジューラーであり、一元管理されたサービスからタスクを作成、実行、管理することができます。EventBridge Schedulerは、高度にカスタマイズ可能で、EventBridgeのスケジュールルールよりも拡張性が向上し、対象となるAPI操作やAWSサービスのセットも豊富です。EventBridge Schedulerでは、270以上のAWSサービスと6,000以上のAPIオペレーションを呼び出すことができる数百万のタスクをスケジュールすることができます。インフラのプロビジョニングや管理、複数のサービスとの連携が不要なEventBridge Schedulerは、スケーラブルなスケジュール配信と保守コストの削減を実現します。
https://docs.aws.amazon.com/eventbridge/latest/userguide/scheduler.html
社内でもすでに記事があり、とてもわかりやすいので是非。
イベント駆動サービスAmazon EventBridge 3兄弟をどう使い分ける?(Rules/Scheduler/Pipes) #reinvent
内容(AWS Serverless Application Model (AWS SAM))
- トランスフォームテンプレート - リソースとイベントソースのマッピングを表現するための省略記法で、サーバーレスアプリケーションのためのlaC(Infrastructure as Code)を提供します。 - コマンドラインインターフェース(CLI) - サーバーレスアプリケーションのローカル開発、デバッグ、ビルド、パッケージング、デプロイのためのツールを提供します。
AWS SAM accelerate
- sam build - 並列ビルド インクリメンタルビルド - 一時的なレイヤー - sam sync - 再デプロイを伴わないコード更新 - 変更されたファイルの監視 - sam logs - ローカル端末でログを取得 - ログのフィルタリング - トレースを含む
AWS SAM accelerateのネストスタック対応
- ネストしたスタックでAWS SAMの機能を高速化することを利用する - スタック内のコード変更を数秒以内に環境にプッシュする - ネストされたスタックを使用して、アプリケーションの分離と保守を管理することができます
AWS SAM Serverless connectors
社内でもすでに取り上げてられているので、是非。
Connectorsにより、開発者は2つのリソース間でデータやイベントがどのように流れるか、また必要なパーミッションのレベルを記述することができます。
esbuildサポート
- esbuildでAWS Lambda関数をビルド、パッケージ化する - TypeScriptで書かれたLambda関数をサポートする - ツリーシェイクとミニフィケーションでパッケージサイズを小さくする - 異なるECMAScriptのバージョンをターゲットにする(デフォルトはes2020)
最後に
AWS SAMが好きで、このスピーチを聞きに行こうと選択しましたが、それ以外にも多くのサービスを学ぶことができて非常にいい経験になりました。 一番驚いたのは、社内ですでに記事が多く上がっていたことです笑 ではでは。